ll或ls -l命令展示信息详解

1
2
3
4
5
[root@localhost ~]# ll
total 12
drwxr-xr-x. 2 root root 6 Apr 22 10:12 123
drwxr-xr-x. 3 root root 17 Apr 22 10:12 234
-rw-------. 1 root root 1243 Apr 8 14:58 anaconda-ks.cfg
字段1 字段2 字段3 字段4 字段5 字段6,7,8 字段9
属性 文件硬链接数或目录子目录数 拥有者 拥有者所在的组 大小(以字节为单位) 日期 名称
drwxr-xr-x. 2 root root 6 Apr 22 10:12 123

字段1(文件/目录属性)

第一个字符表示文件类别,如下:
  • -:普通文件
  • d:目录文件
  • b:块设备文件
  • c:字符设备文件
  • l:符号链接文件
  • s: 表示该文件为套接字文件(socket),用于进程间通信
  • p: 管道
后9个字符代表3组访问权限:
  1. 前3个字符是授权文件所有者的权限;
  2. 中间3个字符是授权同组用户的权限;
  3. 后3个字符是授权其他用户的权限。

每一组的3个字符一次表示读、写、执行权限,其中:

  • r:表示有读权限
  • w:表示有写权限
  • x:表示有执行权限
  • -:表示没有相应的权限
最后一个字符点(.)或者加号(+):
1
2
3
4
5
# ll -Z
-rw-r--r-- root root ? a.file #没有SElinux上下文,没有ACL
-rw-r--r--+ root root ? b.file #只有ACL,没有SElinux上下文
-rw-------. root root system_u:object_r:admin_home_t:s0 my.cnf #只有SElinux上下文,没有ACL
-rw-rw-r--+ root root unconfined_u:object_r:user_tmp_t:s0 dd.c #有SElinux上下文,有ACL

开启SELinux功能的Linux系统才会有这个点。 点表示文件带有“SELinux的安全上下文”。

CentOS7默认是开启SELinux的,所以会有这个点, 如果关闭SELinux,然后再创建文件,新创建的文件就不会再有这个点了, 但是以前创建的文件本来有这个点的还会显示这个点(虽然SELinux不起作用了)。

加了ACL权限控制之后,之前具有SELinux属性的文件和目录的权限列最后一个位置全部变成了加号(+)。移除原来的ACL权限之后,恢复原样。

总结:
  • Linux权限列的点不是无意义字符。在开启SELinux的情况下创建的目录和文件有具有这个点,权限列有这个点说明该目录或文件以及设置了SELinux相关的权限。在禁用SELinux权限之后,在之前开启SELinux权限时创建的文件或目录保持原来的权限不便,权限列的点依然显示。新创建的目录或文件在权限列无这个点显示。
  • 权限列中最后一个位置如果是加号,说明这个目录或文件已经设置了ACL权限相关的内容。如果加号存在,则已经有点的目录或文件,点的显示会被覆盖,但原来的SELinux属性保持不变。

字段2(文件硬链接数或目录子目录数)

  • 新建文件默认数字为1,代表一个硬链接
  • 新建目录默认数字为2,代表拥有两个子目录( . 和 .. )